This application relates generally to virtual circuit networks, and more specifically to a system and method for dynamic channel management providing expansion capability to computer telephony based applications.
The use of intelligent telephony based applications is increasing in multi-node telecommunication systems. Existing multi-node telecommunication systems using intelligent applications, such as an Interactive Voice Response (IVR) unit, provide a variety of services to customers. An IVR unit used to make outbound calls and/or to receive inbound calls allows vendors to automatically provide customers with an advertising or maintenance message. A node on such a multi-node system may be a processor-based system, such as a Personal Computer (PC), or any other resource capable of storing information. Furthermore, each node in such a multi-node system may have an interface to allow connections to be established between the different nodes. Moreover, the IVR allows customers to make inbound calls into the multi-node system where different nodes may have different applications residing on them. When a customer calls into the multi-node system of the vendor, the IVR presents the customer with a set of options to choose from, and based on the choices the call may be routed to different nodes in the network. Thus, the different nodes generally need to communicate with each other to provide the desired services to the customer.
Existing systems, however, allow only a limited number of nodes to be connected together to form the multi-node system. Furthermore, the different nodes have to be physically collocated because of the length of the serial bus or cable that is used to connect the different nodes together. The number of nodes that could be connected to the cable is further limited to prevent impairment of the signal on the cable. Moreover, due to the nature of the interface and the associated physical limitations, the nodes in the network are daisy chained to each other. When a caller calls on a telephone line attached to one of the nodes requesting services resident on another node, the call is connected through to the remote node using the serial bus or cable.
More recently, connection-oriented networks have been used to connect different nodes in a multi-node network. A connection-oriented network is a network specifically designed to support connection-oriented protocols. In a connection-oriented protocol, two network nodes of a multi-node network interact with one another to set up a connection between the nodes. When a connection request is made to a connection-oriented network, the network establishes a path between the source and destination nodes. The nodes may then be configured to route packets of data along the established path. A packet switched network that is connection-oriented may also be referred to as a Virtual Circuit (VC) network. Asynchronous Transfer Mode (ATM) networks are an example of virtual circuit networks. ATM architecture allows multiple nodes to be connected together and provides a backbone for data and voice communications.
Asynchronous Transfer Mode is a broadband networking technology that provides a mechanism for transporting voice and data between systems within a virtual circuit network. ATM technology may be used for both Local Area Networks (LANs) and Wide Area Networks (WANs). Thus, ATM may be used to knit local and wide area networks and services into a seamless whole.
Presently available ATM networks include data links for interconnecting a plurality of network switches. A plurality of nodes (such as workstations, personal computers, etc.) are connected to the network switches by way of links. The links have an input port and an output port with respect to each node. When a certain node (xe2x80x9csource nodexe2x80x9d) desires to communicate with another node (xe2x80x9cdestination nodexe2x80x9d), a routing for enabling the data transfer between them is selected and determined using identifiers. The topology uses switches that establish a logical circuit from the source node to the destination node, and may guarantee a quality of service (QOS) for that transmission. However, unlike telephone switches that dedicate circuits end to end, unused bandwidth in ATM""s virtual circuits can be appropriated whenever available.
The ATM physical interface may be operated at 25.6, 155.52, or 622.08 MHZ full duplex. An ATM Network Interface Card (NIC) may be installed into each node, and connected to an ATM workgroup switch. The NIC provides the desired bridging between the ATM Network Interface and the internal PC Signal Computing System Architecture (SCSA) serial bus required to interface to other resource cards. Thus, connections could be established between the ATM Network Interface and the SCSA for call processing, call connectivity, etc. The SCSA is an internal bus used for interconnecting cards within a PC.
As previously discussed, ATM uses a connection-oriented packet switched protocol. The information to be communicated between the source and destination nodes is organized into a plurality of packets of fixed size. This fixed unit allows very fast switches to be built because the processing associated with variable-length packets is eliminated. For example, there is no need to process the packet to determine the end of the frame. Each packet has a fixed size of 53 bytes and comprises a header and an information field called the xe2x80x9cpayloadxe2x80x9d. The header is usually a 5-byte header and the size of the payload is 48 bytes. The payload field stores the information to be transferred, and the header stores a variety of other informations related to the packet that is desirable for the transfer of information. The small size of the ATM packet also ensures that voice and video can be inserted into the stream frequently enough for real-time transmission.
Each packet is part of a virtual circuit, which is identified by a Virtual Path Identifier (VPI) and a Virtual Channel Identifier (VCI) parameter stored within the packet header. A virtual circuit may be a unidirectional virtual trunk carrying data. Since a VC is unidirectional, one receive and one transmit VC must be set up to provide a bi-directional path. Once a VC path is configured between a source node and a destination node within an ATM switch, all routing and switching of packets between the source node and destination node is performed by programmed hardwired logic that no longer requires microprocessor intervention. For transferring packets internally between ports, ATM switches utilize high-speed buses operating in gigabit per second ranges.
There are two primary types of virtual circuits. A Switched Virtual Circuit (SVC) is a VC that is dynamically setup and torn down using the ATM User Network Interface (UNI) end point-to-end point signaling protocol. The UNI protocol utilizes source and destination address information, provided by the node initiating the SVC request, to identify the two nodes requiring a VC Connection (VCC) through the ATM switch and then resolves these addresses to physical ports on the switch. The ATM switch has internal VC routing tables. Thus, on receiving the source and destination address information, it assigns a VPI/VCI translation to its internal VC routing tables. It is not necessary to use the same VPI/VCI at both the source and the destination ports, though often this may be the case. In addition, the same VPI/VCI may be used for both receive and transmit VC at one end. The UNI protocol provides the VPI/VCI assignment to each end point. Once the UNI protocol has completed setting up the SVC, either end point may begin sending packets to the other end by using the near-end assigned VPI/VCI route. The ATM switch performs the translations and switches the packets between the ports according to the stored routing tables. Thus, setting up a SVC between the source and destination nodes is similar in some respects to making a phone call over the Public Switched Telephone Network (PSTN).
The second VC type is called a Permanent Virtual Circuit (PVC). A PVC is statically configured on the ATM switch by downloading PVC routing information to the switch via a maintenance interface. The ATM switch stores and retains this PVC routing information in a programmable memory. A PVC is similar to a leased telephone line, in that it provides a permanent connection between two systems. Each time the ATM switch is powered on or reset, the PVC routing is restored from the program memory, along with end-to-end system connectivity.
When configuring either a SVC or PVC, a Quality of Service (QOS) is defined for all traffic carried by the VC. There are two primary ATM Adaptation Layer (AAL) protocols, which provide a specific QOS by guaranteeing specific minimum and maximum VC bandwidth. The AAL5 protocol is used to transport Undefined Bit Rate (UBR) data such as Transmission Control Protocol/Internet Protocol (TCP/IP) burst transaction traffic. The AAL1 protocol is used to transport Constant Bit Rate (CBR) data such as 64 KBPS Pulse Code Modulation (PCM) voice traffic. The ability to specify a QOS is an important feature of ATM, allowing voice and video to be transmitted smoothly and in real-time. A Constant Bit Rate (CBR) QOS guarantees bandwidth for the peak cell rate of the application and is most useful for real-time voice and video traffic. In some cases, depending on the ATM equipment and network configurations, AAL5 may be utilized to carry AAL1 traffic. This does not present a QOS problem, providing there is sufficient bandwidth end-to-end to insure traffic bottlenecks do not occur. When both AAL1 and AAL5 are being used, priority is given to the AAL1 packets. Unspecified Bit Rate (UBR) QOS provides a best effort transport of data. However, it does not guarantee available bandwidth. UBR QOS is very efficient, but not used for critical data. Other types of QOS that may be used are Available Bit Rate (ABR) QOS, Real-time Variable Bit Rate (rt-VBR) QOS, and non-real-time Variable Bit Rate (nrt-VBR) QOS. ABR QOS adjusts bandwidth according to congestion levels for LAN traffic. Rt-VBR supports interactive multimedia that requires minimal delays and nrt-VBR is used for burst transaction traffic.
In general, SVCs and PVCs may not be configured using the same VPI/VCI. Moreover, a number of VPI/VCI combinations are typically reserved for ATM signaling protocols and ATM network maintenance on the network. Once VC routing is configured between two ports on an ATM switch, packets may be transmitted between the nodes with each node using the near end VPI/VCI that identifies the VC route to the remote node. For example, assume that the ATM switch routing is configured with node 0 connected to port 0 using VPI/VCI 0/102, and node 1 connected to port 1 using VPI/VCI 0/105. Then node 0 would transmit packets to node 1 by setting the packet header parameters VPI/VCI to 0/102. In similar fashion, node 1 would send packets to node 0 by setting the packet header parameters VPI/VCI to 0/105. In order for each node in the system to communicate to all other nodes, one or several sets of a VC meshed networks are required. For example, an 8 node system would require a minimum configuration of 7 bi-directional VCs at each node in order for each node to connect to all of the 7 adjacent nodes. Therefore, it would require one set of 56 unidirectional VCs (or 28 bi-directional VCs), to be opened simultaneously for the connectivity to be non-blocking between all nodes. This configuration of VCs is often referred to as a meshed network and is shown in FIG. 7. FIG. 7 represents a schematic diagram of a meshed network 700 of virtual circuit paths between the nodes of an 8 node system to provide non-blocking from each node to every other node.
Since PCM data requires a CBR transport, a VC packet must be filled and transmitted periodically in order to maintain continuity of the PCM data stream at the receiver. Since the payload of an ATM packet is fixed at 48 bytes, up to 48 samples of 64 KBPS PCM voice channel may be transferred in a single packet. However, carrying only a single channel of PCM data would introduce an undesirable delay of at least 6 ms (48xc3x97125 xcexcs) end-to-end. This is due to the fact that 48 PCM samples must first be accumulated at the transmitter before it can be sent in a packet to the receiver. In addition to the 6 ms delay, there are additional delays introduced by the packet assembly process at the transmitter, the ATM network, and the packet disassembly process at the receiver.
In order to minimize these delays, a VC may be configured in such a way as to multiplex two or more channels of PCM data simultaneously into the packet payload. But in order to maintain the CBR data stream end-to-end, the packet must be transmitted at a rate proportionally higher then that required by a single channel VC. For example, the end-to-end delay of a VC carrying two 64 KBPS PCM channels would be 3 ms less than compared to a VC carrying a single channel. Therefore, increasing the number of channels multiplexed into a VC and proportionally increasing the rate at which the VC packets are transmitted can reduce end-to-end delay. A typical configuration might configure 12 PCM channels per VC. If each node requires a non-blocking configuration of 48 channels to each adjacent node in an 8 node system, and each VC was configured for 12 channels, then it would require 4 sets (48/12) of 28 bi-directional VCs to create a non-blocking meshed network.
During the normal connect/disconnect process, VCs are opened and closed dynamically between nodes as needed to carry varying traffic loads. A CBR VC is opened specifying the number of PCM channels it is required to carry. Once opened, the VC immediately begins periodically transmitting null packets for the specified number of channels. As individual channels are activated in a VC, null packets begin to fill with PCM data. As individual channels are deactivated in a VC, the packets begin to fill with nulls. A VC is most bandwidth efficient when all channels are activated, and becomes less bandwidth efficient as channels are deactivated. When the last channel in a VC is deactivated, the VC is normally closed. Conditions often occur where it would be advantageous to aggregate the bandwidth of two or more inefficiently utilized VCs opened between two nodes into one VC. This aggregation process minimizes the ATM physical link bandwidth between the two nodes, and reduces the overall bandwidth on the ATM network. For example, if two 12 channel VCs were opened between two nodes and only 6 channels on each VC were active, then the physical link bandwidth could be reduced by moving the 6 active channels from the first VC to the second VC and closing the first VC. There may be limitations in the ATM network, such as physical link bandwidth, or the available VPI/VCI address ranges. In these cases, aggregation of VCs between any two nodes can minimize blocking conditions that can occur when one of the two nodes, which have inefficiently utilized VCs, attempts to open a VC to a third node. Additional links can be installed to increase available bandwidth between nodes, and provide alternate or redundant paths for transporting traffic between nodes.
Therefore, there is a need in the art to provide a system and method for managing the allocation, re-allocation and de-allocation of virtual circuits and virtual circuit channels for improved non-blocking fault tolerance of a multi-node VC network architecture of resources for computer telephony applications.
These and other objects, features and technical advantages are achieved by a system and method which provides an improved non-blocking fault tolerant multi-node virtual circuit network architecture of resources for Computer Telephony applications.
Telephony applications may be connected to virtual circuit networks, such as an ATM network, to provide desired characteristics to the different nodes. For example, a multi-node Interactive Voice Response (IVR) system attached to existing telephone networks may use an Asynchronous Transfer Node (ATM) network between nodes to connect customers calling in on one node, to agents on another node. Each node of such a network may have a Connection Control Processor (CCP) to form a connection between the nodes, such as a source node and a destination node, in the network. The CCP may be comprised of multiple hardware and software sub-process mechanisms. Furthermore, the CCP of the various nodes may send messages to communicate between the nodes using Ethernet, ATM, or some other message based network.
The different nodes of such a network may have different resources that may be accessed by all the nodes. Such resources may include resources to support computer telephony applications, such as interactive voice response systems, credit card processing systems, inbound and outbound call centers, voice recognizer systems, voice conferencing systems or the like. Thus, resource connections may be initiated from any node and may involve resources between any two nodes connected in the network. For example, a first node might initiate a connection that utilizes another resource on a second node. Thus, a virtual connection may be set up between the first node and the second node to transmit data between the two nodes. The CCP of both nodes may be used to connect and disconnect resources between the nodes equipped in the virtual circuit network.
The different nodes may use networking devices, such as an ATM or Ethernet hub, to direct communications between the various nodes. Thus, the networking devices generally serve as network hubs for all nodes equipped in the system. To provide such multi-node computer telephony applications in the virtual circuit network, it is desirable to have mechanisms to dynamically allocate, de-allocate, and re-allocate the virtual circuit channels between the nodes to provide communications in a manner that would prevent channel allocation conflicts, and at the same time optimize the physical link bandwidth, and provide fault tolerance.
A preferred embodiment of the present invention also describes a method for allocating a channel on a virtual circuit network of a plurality of nodes, comprising receiving a connection request from an originating node to establish a connection between a first resource connection point (RCP) and a second RCP, determining a first node on the virtual circuit network associated with the first RCP and a second node associated with the second RCP. The received connection request is passed to a preferred one of the first and second nodes and forwarded to a first CCP associated with the preferred node to connect one of the RCPs associated with the preferred node with the other RCP. The RCP associated with the preferred node is connected to a channel allocated by the first CCP. The connection request is passed to the other one of the first and second nodes and forwarded to a second CCP associated with the other node to connect the other RCP to the RCP associated with the preferred node. The other RCP is connected to the allocated channel thereby completing the connection request.
A preferred embodiment of the present invention describes a method for de-allocating a channel on a virtual circuit network of a plurality of nodes, comprising receiving a disconnection request from an originating node to disconnect a connection between a first RCP and a second RCP, determining a first node on the virtual circuit network associated with the first RCP and a second node associated with the second RCP. The received disconnection request is passed to a preferred one of the first and second nodes and forwarded to a first CCP associated with the preferred node to disconnect one of the RCPs associated with the preferred node from the other RCP. The RCP associated with the preferred node is disconnected from the virtual circuit channel associated with the RCP. The disconnection request is passed to the other node of the first and second nodes and forwarded to a second CCP associated with the other node to disconnect the other RCP from the virtual circuit channel. The other RCP is disconnected from the virtual circuit channel, thereby completing the disconnection request.
A preferred embodiment of the present invention further describes a method for maintaining ATM link operational status between nodes, comprising broadcasting link status messages periodically over each link equipped in a node to a selected plurality of other nodes equipped in the ATM network, periodically retrieving the received link status messages at each node from the selected plurality of other nodes, determining and maintaining the in-service or out-of-service operational state of said links at each node. When a new connection is to be established between two nodes, the link status information is used to select an operational link between the two nodes during the channel allocation process.
Thus, it is an advantage of one aspect of the present invention to provide a virtual circuit allocation mechanism between different nodes in a virtual circuit network.
It is an advantage of another aspect of the present invention to provide a virtual circuit channel de-allocation mechanism between different nodes in a virtual circuit channel network.
It is an advantage of still another aspect of the present invention to provide a virtual circuit message protocol mechanism to coordinate opening and closing of virtual circuits between nodes, in order to eliminate pre-mature closing of a VC resulting in packet framing errors.
It is an advantage of a further aspect of the present invention to provide a link diagnostic and fault recovery mechanism to provide fault tolerance in a virtual circuit network.
It is an advantage of another aspect of the present invention to provide a mechanism to insure that multiple CCPs within a peer-to-peer multi-node ATM network may originate and terminate connections independently and simultaneously, without channel allocation conflicts and packet framing errors, and with optimum link bandwidth utilization and fault tolerance.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.